package com.briup.smartlab.exception;


import com.briup.smartlab.util.Response;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理类 :
 * 当web层的方法抛出异常时,当前异常处理类可以捕获该异常，并能够进行处理
 * @Author briup
 */
@RestControllerAdvice //增强web层处理异常的功能
public class GlobalExceptionHandler {
    //当web层抛出异常类型为Exception类型
    @ExceptionHandler(Exception.class)
    public Response handleException(Exception ex){
        System.out.println("进行异常统一处理");
        //1.打印异常： 程序员调试程序
        ex.printStackTrace();
        //3.业务异常： 提示用户不同的提示信息，可以修改提交的参数
        if(ex instanceof ServiceException){
            return Response.error(500,ex.getMessage());
        }
        //2.语法异常 提示用户程序内部错误
        return  Response.error("程序内部错误");
    }
}
